// pages/joke/joke.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    jokes: []
  },

  getJokes() {
    wx.showLoading({
      title: '拼命加载中',
    })

    // 1.创建 Promise 实例
    const p = new Promise((resolve, reject) => {
      // 2. 内部自行异步操作
      wx.request({
        url: 'https://api-vue-base.itheima.net/api/joke/list',
        data: {
          num: 10
        },
        success: (res) => {
          //  3.成功时。调用 resolve
          // 4. 失败时，调用 reject
          // console.log(res.data.data);
          resolve(res)
          wx.hideLoading()
        }
      })
    })

    return p

  },
  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad(options) {
    const res = await this.getJokes();
    //  console.log('onLoad',res)
    this.setData({
      jokes: res.data.data
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  async onPullDownRefresh() {
    const res = await this.getJokes();
    this.setData({
      jokes: res.data.data
    })
    wx.showToast({
      title: '刷新完毕',
    })
    // 可以人为的关闭下拉效果
    wx.stopPullDownRefresh()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  async onReachBottom() {
    // 加载更多 新数据，老数组 合并
    const res =  await this.getJokes()
    const {jokes} = this.data
    this.setData({
      // 展开运算符
      // 先展开了旧笑话，在开头，再展开了新笑话，在末尾
      jokes:[...jokes,...res.data.data]
    })
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})